/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package camel.client;

import java.util.List;

import javax.ejb.Remote;

/**
 *
 * @author mac
 */
@Remote
public interface CamelRemote {
    SessionTicket login(final ParticipantLoginInfo cred);
    void logout(SessionTicket ticket);
    
    Boolean addUserAdHoc (final ParticipantLoginInfo cred);

    public java.util.List<camel.client.BriefSessionInfo> getSessionList(camel.client.SessionTicket ticket);

    public SessionTicket createSession(SessionTicket ticket, String title, String description);

    public CommandPack postCommandPack(CommandPack postPack);

    public SessionTicket joinSession(SessionTicket ticket, long sessionId, boolean isPlayback);
    
    public SessionTicket leaveSession(SessionTicket ticket, long sessionId);
    
    public CommandPack queryCommandPack(SessionTicket ticket, boolean filterOutEventsFromMe);
    
    public List<TeamMemberStatus> queryTeamMemberStatus (SessionTicket ticket);
    
    public List<ParticipantStatus> queryParticipantStatus (SessionTicket ticket);
    
    public SessionTicket assignRole (SessionTicket ticket, String username, String role);
    
    public SessionTicket invite (SessionTicket ticket, String userId);
    
    public Boolean userAdmin(String flag,ParticipantLoginInfo info);
    
    public int CreateSemaphore (SessionTicket ticket);
    public SessionTicket TryAcquireSemaphore (SessionTicket ticket, int id);
    public SessionTicket ReleaseSemaphore (SessionTicket ticket, int id);
     
     /*
    public SessionTicket assignRole (SessionTicket ticket, String userId, String role);

    public SessionTicket invite (SessionTicket ticket, String userId);

 	*/
}
